package core.gui;

import org.eclipse.jface.wizard.WizardPage;

public abstract class ValidationWizardPage extends WizardPage {

	protected ValidationWizardPage(String pageName) {
		super(pageName);
	}

	protected void clearErrorState() {
		setErrorMessage(null);
		setMessage(null, WizardPage.WARNING);
		setPageComplete(true);
	}

	protected void setErrorState(String errorMsg) {
		setErrorMessage(errorMsg);
		setPageComplete(false);
	}

	protected void setWarningState(String warningMsg) {
		clearErrorState();
		setMessage(warningMsg, WizardPage.WARNING);
	}

	/**
	 * Pozwala na walidację inputów w wizardzie
	 */
	protected abstract void validate();

	/**
	 * Aktualizuje obiekt
	 */
	protected abstract void update();

	@Override
	public void setVisible(boolean visible) {
		if (visible == true) {
			onEnterPage();
		}
		super.setVisible(visible);
	}

	/**
	 * Pozwala na dynamiczną aktualizację zawartości strony
	 */
	protected void onEnterPage() {
	}
}
